package oscar.examen.Structs;


import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

public class TipoProductoDAO {
	
	@SessionTarget
	Session session;
	
	@TransactionTarget
	Transaction transaction;
	

	/**
	 * Guardar o actualizar un tipoProducto
	 */
	public void guardarOActualizarTipoProducto(TipoProducto tipoProducto) {
		try {
			session.saveOrUpdate(tipoProducto);
		} catch (Exception e) {
			transaction.rollback();
			e.printStackTrace();
		}
	}

	/**
	 * Eliminar un tipoProducto.
	 */
	public void eliminarTipoProducto(Long id) {
		try {
			TipoProducto tipoProducto = (TipoProducto) session.get(TipoProducto.class, id);
			session.delete(tipoProducto);
		} catch (Exception e) {
			transaction.rollback();
			e.printStackTrace();
		} 
	}
	
	/**
	 * Listar todos los tipoProductos
	 */
	@SuppressWarnings("unchecked")
	public List<TipoProducto> listarTipoProductos(){
		List<TipoProducto> tipoProductos = null;
		try {
			tipoProductos = session.createQuery("from tipoproducto").list();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return tipoProductos;
	}

	/**
	 * Listar un tipoProducto
	 */
	public TipoProducto listarTipoProductoPorId(Long id) {
		TipoProducto tipoProducto = null;
		try {
			tipoProducto = (TipoProducto) session.get(TipoProducto.class, id);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return tipoProducto;
	}

}
